<div id="challenge-desc" class="chal-goal blue-border border-box">
    <p>Ajoutez une branche, localement, à votre dépôt forké pour travailler sur vos modifications.</p>
</div>

<div class="chal-background light-blue solid-box">
    <h2>Branches</h2>
    <p>Les dépôts Git utilisent des branches pour isoler le travail au besoin. C'est une pratique courante lorsque vous 
    travaillez sur un projet de créer une <strong>branche</strong> pour que vos modifications de travail soient 
    conservée à part. De cette façon, vous pouvez faire votre travail, tandis que la branche principale, généralement 
    nommée «master», reste stable. Lorsque le travail sur votre branche est terminé vous le fusionnez dans la branche 
    principale 'master'.</p>

    <p>Le schéma ci-dessous montre comment vous pouvez dériver de votre branche 'master', travailler et fusionner ces 
    modifications dans «master». Vous pouvez même dériver d'une autre branche si vous le souhaitez, la branche 'master' 
    n'a pas à être la base d'un embranchement.</p>

    <img src="../../../assets/imgs/branches.png"
         alt="Un diagramme montrant une ligne horizontale, représentant la branche maîtresse, avec une autre ligne se ramifiant vers le haut et plus tard reliant l'original. Une autre ligne dérive de la branche maîtresse par le bas et une autre branche dérive de celle-ci. De ceux-ci se rencontrent avec la ligne principale d'origine, aussi."
         width="100%">

    <p>Pour une excellente visualisation sur la façon dont les branches fonctionnent dans un projet, consultez ce guide 
    GitHub: <a href="http://guides.github.com/overviews/flow/" target="_blank">guides.github.com/overviews/flow</a></p>

    <h2>GitHub Pages</h2>
    <p>GitHub hébergera automatiquement les fichiers de sites statiques. Pour être accessible comme un site web, il 
    doivent être situées dans la branche nommée 'gh-pages'. Ce service gratuit est appelé 
    <a href="http://pages.github.com">GitHub Pages</a>. Puisque le projet que vous avez lancé crée un site Web, la 
    branche principale sera 'gh-pages' au lieu de 'master'. Tous les dépôt qui ont une branche 'gh-pages' ont un site 
    Web directement accessible en ligne, se situant à l'URL construite sur le modèle suivant:</p>
    
    <code>http://githubusername.github.io/repositoryname</code>
</div>

<div class="chal-step blue-border border-box">
    <h3>Créer une branche</h3>
    <p>Lorsque vous créez une branche, Git copie l'intégralité de la branche sur laquelle vous vous trouvez et la place 
    dans la branche nouvellement crée.</p>

    <p>Toujours dans votre dépôt local «patchwork», tapez <code> git status </ code> pour voir sur 
    quelle branche vous êtes. Git devrait répondre que vous êtes sur la branche 'gh-pages'.</p>

    <p>Créez maintenant une nouvelle branche et nommez-la "add-&#60;username&#62;", où 'username' est votre nom 
    d'utilisateur. Par exemple, "Add-jlord". <strong>Les branches sont sensibles à la casse, nommez-là exactement avec 
    la même capitalisation que votre compte GitHub</strong>.</p>

    <p><code class="shell">git branch &#60;BRANCHNAME&#62;</code></p>

    <p>Maintenant, vous avez une branche avec un nouveau nom identique à 'gh-pages'.</p>

    <p>Pour entrer dans une branche et travailler dessus, vous devez <strong> checkout </ strong> cette branche. Allez 
    sur votre nouvelle branche: </p>
    <p><code class="shell">git checkout &#60;BRANCHNAME&#62;</code></p>
</div>

<div class="chal-step blue-border border-box">
    <h3>Étape: Créer un nouveau fichier</h3>
    <p>Retour dans votre éditeur de texte:</p>
    <ul>
        <li>Créez un nouveau fichier nommé <span style="white-space: nowrap;">"add-&#60;USERNAME&#62;.txt"</span>, où
            'username' est votre nom d'utilisateur. Par exemple, "add-jlord.txt".
        </li>
        <li>Écrivez simplement votre nom d'utilisateur GitHub et c'est tout. Par exemple, je taperez 'jlord'.</li>
        <li>Enregistrez ce fichier dans le dossier 'contributors' de Patchwork: <strong>Patchwork/contributors/add-yourusername.txt</strong>
        </li>
        <li>Vérifiez vos modifications (voir ci-dessous).</li>
    </ul>
</div>

<div class="chal-step blue-border border-box">
    <h3>Vérification</h3>
    <p>Effectuez les étapes ci-après pour vérifier un projet: </p>

    <p><code class="shell">git status</code></p>
    <p><code class="shell">git add &#60;contributors/FILENAME&#62;</code></p>
    <p><code class="shell">git commit -m "commit message"</code></p>

    <p>Maintenant vous pouvez pousser vos modifications sur <b>votre fork</b>, avec le remote 'origin', sur GitHub:</p>
    <p><code class="shell">git push origin &#60;BRANCHNAME&#62;</code></p>
</div>

{{{ verify_directory_button }}}

<div class="chal-no-pass grey-border border-box">
    <h4>Permission denied...error: 403</h4>
    
    <p>Vous essayer de pousser des modifications à un référentiel auquel vous n'avez pas accès en écriture. Dans ce cas, 
    vous poussez probablement sur le dépôt original 'jlord/patchwork'. Assurez-vous que avez bien poussé sur le remote 'origin' 
    et qu'il pointe bien vers l'adresse de votre fork sur GitHub. Pour vérifier et voir quels sont les remotes et où ils 
    pointent, exécutez <code> git remote -v </ code>. Vous devriez avoir 'upstream' indiquant 'jlord/patchwork' et 
    'origin' indiquant 'yourusername/patchwork'
    </p>
    
    <p>Pour réparer un remote qui pointe vers le mauvais endroit, vous pouvez redéfinir son URL:</p>
    
    <p><code>git remote set-url origin <URLTOYOURFORK></code></p>

    <h4>Authentication failed...error: 401</h4>
    
    <p>Votre identité n'a pas pu être vérifiée. Vous avez peut-être activé 2FA (Two Factor Authentication) auquel cas 
    vous devez utiliser un jeton d'accès personnel comme mot de passe. Vous pouvez en générer un en 
    <a href="https://help.github.com/articles/creating-an-access-token-for-command-line-use">suivant ces instructions </a>. 
    Vous devrez le garder et l'utiliser à la place de votre mot de passe lorsque vous y êtes invité. Vous pouvez 
    également <a href="https://help.github.com/articles/caching-your-github-password-in-git/"> enregistrer ce jeton 
    d'accès </a> sur votre ordinateur afin de ne plus avoir à le saisir.
    </p>

    <h4>File NOT in contributors folder</h4>
    
    <p> Le fichier que vous créez doit être placé dans le dossier 'contributors' du référentiel Patchwork. Si vous 
    l'avez mis ailleurs, déplacez votre fichier dans le dossier. Vous pouvez vérifiez à nouveau <code> git status</code> 
    et vous verrez vos modifications. Ajoutez et soumettez (commit) "toutes" (-A) les modifications (ajouts et 
    suppressions) avec les commandes ci-dessous.
    </p>
    <p><code class="shell">git add -A</code></p>
    <p><code class="shell">git commit -m "move file into contributors folder"</code></p>

    <h4>Branch name expected: _____</h4>
    <p>Le nom de la branche doit correspondre exactement à votre nom d'utilisateur. Pour changer votre nom de branche:</p>
    <p><code class="shell">git branch -m &#60;NEWBRANCHNAME&#62;</code></p>
    <p>Lorsque vous avez effectué vos mises à jour, vérifiez à nouveau!</p>
</div>

<div class="chal-tip grey-border border-box">
    <ul class="no-list-style">
        <li><strong>Vous pouvez créer et passer sur une branche en une seule commande</strong></li>
        <li><code class="shell">git checkout -b &#60;BRANCHNAME&#62;</code></li>
        <li><strong>Créer une nouvelle branche</strong></li>
        <li><code class="shell">git branch &#60;BRANCHNAME&#62;</code></li>
        <li><strong>Se déplacer sur une branche</strong></li>
        <li><code class="shell">git checkout &#60;BRANCHNAME&#62;</code></li>
        <li><strong>Lister les branches</strong></li>
        <li><code class="shell">git branch</code></li>
        <li><strong>Renommer la branche courante</strong></li>
        <li><code class="shell">git branch -m &#60;NEWBRANCHNAME&#62;</code></li>
        <li><strong>Vérifiez la branche sur laquelle vous travaillez</strong></li>
        <li><code class="shell">git status</code></li>
    </ul>
</div>
